home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctj8509.arc
/
VOLABEL.ASM
< prev
next >
Wrap
Assembly Source File
|
1980-01-01
|
2KB
|
62 lines
PAGE
TITLE VOLABEL -A VOLUME LABEL WRITING PROGRAM
COMMENT " VOLABEL [D:]
Creates a volume label entry in a root directory.
"
CODE SEGMENT
ORG 55H
FLAGBYTE DB (?) ;1ST BYTE OF EXTENDED FCB
ORG 5BH
ATTRBYTE DB (?) ;ATTRIBUTE BYTE OF EXTENDED FCB SET
DRIVENUM DB (?) ;DRIVE NUMBER
VOLNAME DB 11 DUP(?) ;VOLUME NAME
ORG 100H
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
VOLABEL PROC
;PRINT PROMPT
MOV AH,09H
MOV DX,OFFSET PROMPT
INT 21H
;GET VOLUME LABEL NAME
MOV AH,0AH
MOV DX,OFFSET INBUFF
INT 21H
;MOVE VOLUME NAME TO EXTENDED FCB
XOR BX,BX ;CLEAR BX
MOV CX,0BH ;MAXIMUM LOOP ITERATIONS IS 11
NAMELOOP:
MOV AH,[INBUFF+BX+2] ;MOVE CHAR FROM INPUT BUFFER
CMP AH,0DH ;EXIT LOOP IF CHARACTER IS A CARRIAGE RETURN
JE LOOPDONE
MOV [VOLNAME+BX],AH ;PLACE CHARACTER IN FCB
INC BX ;POINT TO NEXT CHARACTER
LOOP NAMELOOP
LOOPDONE:
MOV FLAGBYTE,0FFH ;SET EXTENDED FCB FLAG
MOV ATTRBYTE,08H ;SET ATTRIBUTE BYTE OF EXT FCB FOR VOLUME LABEL
;CREATE DIRECTORY ENTRY FOR VOLUME NAME
MOV AH,16H
MOV DX,55H ;SET DX TO START OF EXTENDED FCB
INT 21H
;TEST FOR CREATION ERROR
OR AL,AL ;JUMP IF DIRECTORY ENTRY IS CREATED
JZ CREATE_OK
MOV AH,9H ;PRINT CREATION ERROR MESSAGE
MOV DX,OFFSET CREATEMSG
INT 21H
JMP VOLABEL_END ;EXIT PROGRAM
CREATE_OK:
;CLOSE FILE CREATED BY DIRECTORY ENTRY CREATION
MOV AH,10H
MOV DX,55H ;SET DX TO START OF EXTENDED FCB
INT 21H
VOLABEL_END:
INT 20H ;RETURN TO DOS
VOLABEL ENDP
INBUFF DB 0CH ;INPUT BUFFER FOR LABEL NAME
DB 12 DUP (0)
PROMPT DB 0DH,0AH,'PLEASE ENTER VOLUME LABEL NAME (11 CHARS. MAX): $'
CREATEMSG DB 0DH,0AH,'UNABLE TO ENTER VOLUME LABEL INTO DIRECTORY$'
CODE ENDS
END VOLABEL